// pages/my_clock/index.js
const http = require('../../utils/http.js');
import regeneratorRuntime from '../../lib/runtime/runtime'
Page({

  /**
   * 页面的初始数据
   */
  data: {
     msg:'请选择日期',
     shipin:null,
    
     // 此处为日历自定义配置字段
     calendarConfig: {
      //multi: true, // 是否开启多选,
      theme: 'elegant', // 日历主题，目前共两款可选择，默认 default 及 elegant，自定义主题在 theme 文件夹扩展
      showLunar: false, // 是否显示农历，此配置会导致 setTodoLabels 中 showLabelAlways 配置失效
      inverse: true, // 单选模式下是否支持取消选中,
     // chooseAreaMode: true, // 开启日期范围选择模式，该模式下只可选择时间段
      markToday: '今', // 当天日期展示不使用默认数字，用特殊文字标记
     // defaultDay: '2018-3-6', // 默认选中指定某天；当为 boolean 值 true 时则默认选中当天，非真值则在初始化时不自动选中日期，
      highlightToday: false, // 是否高亮显示当天，区别于选中样式（初始化时当天高亮并不代表已选中当天）
     // takeoverTap: true, // 是否完全接管日期点击事件（日期不会选中），配合 onTapDay() 使用
     // preventSwipe: true, // 是否禁用日历滑动切换月份
    //  disablePastDay: true, // 是否禁选当天之前的日期
      disableLaterDay: true, // 是否禁选当天之后的日期
      firstDayOfWeek: 'Mon', // 每周第一天为周一还是周日，默认按周日开始
     // onlyShowCurrentMonth: true, // 日历面板是否只显示本月日期
     // hideHeadOnWeekMode: true, // 周视图模式是否隐藏日历头部
      showHandlerOnWeekMode: true // 周视图模式是否显示日历头部操作栏，hideHeadOnWeekMode 优先级高于此配置
    }
  },
  toback:function(){
    //返回
    wx.navigateBack({
      delta: 1
    });

  },// end of toback
  clockdates:[], //打卡日期列表
  NewsItems: [],//打卡日期视频地址列表
   //请求后台接口要的参数
   QueryParams:{   
    uid:''
    
  },
  totalPages:0, //总页数
  // 获取列表数据
  async getGoodsList(){
    let url = 'Clock/getListmonth/'
    let  res = await http.post(url,this.QueryParams)
   
    //const total=res.total
   // this.totalPages=Math.ceil(total/this.QueryParams.pagesize)
    //console.log(this.totalPages)
    this.NewsItems=res.ok
    this.NewsItemsfail=res.fail
    
    let array=[]
    this.NewsItems.map( item => {
     
      //let t=new Date(item.inputdate)
     
      let tm = item.inputdate
      let t = new Date(tm.replace(/-/g,'/'))

     
      let y=t.getFullYear()
    
      let m=t.getMonth() + 1
     
      let d=t.getDate()
      let arrStr = {'year':y,'month':m,'day':d,todoText: '已打卡'}
      array.push(arrStr)
      
    })
    this.NewsItemsfail.map( item => {
      //console.log('item=',item)
      //let t=new Date(item.inputdate)
     
      let tm = item.inputdate
      let t = new Date(tm.replace(/-/g,'/'))

     
      let y=t.getFullYear()
   
      let m=t.getMonth() + 1
     
      let d=t.getDate()
      let arrStr = {'year':y,'month':m,'day':d,todoText: '未通过'}
      array.push(arrStr)
      
    })
   
   
    this.clockdates=array
    
   
    this.addtip()
    
  },
  addtip(){
    // 待办事项中若有 todoText 字段，则会在待办日期下面显示指定文字，如自定义节日等。
    //console.log('this.clockdates',this.clockdates)
    this.calendar.setTodoLabels({
      // 待办点标记设置
      pos: 'bottom', // 待办点标记位置 ['top', 'bottom']
      dotColor: '#40', // 待办点标记颜色
      circle: false, // 待办圆圈标记设置（如圆圈标记已签到日期），该设置与点标记设置互斥
      showLabelAlways: true, // 点击时是否显示待办事项（圆点/文字），在 circle 为 true 及当日历配置 showLunar 为 true 时，此配置失效
      days: this.clockdates
    });
  },
   /**
   * 选择日期后执行的事件
   * currentSelect 当前点击的日期
   * allSelectedDays 选择的所有日期（当mulit为true时，allSelectedDays有值）
   */
  afterTapDay(e) {
    //console.log('afterTapDay', e.detail); // => { currentSelect: {}, allSelectedDays: [] }
    const findIndex =this.clockdates.findIndex(element =>{ 
     
     return element.year==e.detail.year&&element.month==e.detail.month&&element.day==e.detail.day});
     
    //console.log(findIndex)
    if (findIndex>=0){
      let shipin=this.NewsItems[findIndex].url
      let msg='请选择日期'
      this.setData({
        shipin
      })
    }else{
      let shipin=null
      let msg='当天没有打卡记录！'
      this.setData({
        shipin,
        msg
      })
      
    }
    
    //const dates = this.calendar.getCalendarDates();
   
  },
  /**
   * 当日历滑动时触发(适用于周/月视图)
   * 可在滑动时按需在该方法内获取当前日历的一些数据
   */
  onSwipe(e) {
    //console.log('onSwipe', e.detail);
    //const dates = this.calendar.getCalendarDates();
  },
  /**
   * 当改变月份时触发
   * => current 当前年月 / next 切换后的年月
   */
  whenChangeMonth(e) {
   // console.log('whenChangeMonth', e.detail);
    // => { current: { month: 3, ... }, next: { month: 4, ... }}
  },
  /**
   * 周视图下当改变周时触发
   * => current 当前周信息 / next 切换后周信息
   */
  whenChangeWeek(e) {
    //console.log('whenChangeWeek', e.detail);
    // {
    //    current: { currentYM: {year: 2019, month: 1 }, dates: [{}] },
    //    next: { currentYM: {year: 2019, month: 1}, dates: [{}] },
    //    directionType: 'next_week'
    // }
  },
  /**
   * 日期点击事件（此事件会完全接管点击事件），需自定义配置 takeoverTap 值为真才能生效
   * currentSelect 当前点击的日期
   */
  onTapDay(e) {
    //console.log('onTapDay', e.detail); // => { year: 2019, month: 12, day: 3, ...}
  },
  /**
   * 日历初次渲染完成后触发事件，如设置事件标记
   */
  afterCalendarRender(e) {
    //console.log('afterCalendarRender', e);
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    const uid = wx.getStorageSync('uid')
    const userInfo=wx.getStorageSync("userInfo")
   
    this.setData({
      userInfo
     
    })
    this.QueryParams.uid=uid
   

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
    if (this.QueryParams.uid){
       //uid不为空，从后台调取数据
      this.getGoodsList()
    }
    
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
   // 

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})